﻿using System;
using System.Windows.Input;
using Microsoft.Practices.Prism.Commands;

namespace Tanmia.Basis.Prism
{
    public class UICommand : DelegateCommand
    {
        public Key GestureKey { get; set; }

        public ModifierKeys GestureModifier { get; set; }

        public MouseAction MouseGesture { get; set; }

        public string Caption { get; set; }

        public int Group { get; set; }

        public int Order { get; set; }

        public UICommand(Action executeMethod)
            : base(executeMethod)
        {
        }

        public UICommand(Action executeMethod, Func<bool> canExecuteMethod)
            : base(executeMethod, canExecuteMethod)
        {
        }

        public UICommand(Action executeMethod, ModifierKeys gestureModifier, Key gestureKey)
            : base(executeMethod)
        {
            this.GestureModifier = gestureModifier;
            this.GestureKey = gestureKey;
        }

        public UICommand(Action executeMethod, Func<bool> canExecuteMethod, ModifierKeys gestureModifier, Key gestureKey)
            : base(executeMethod, canExecuteMethod)
        {
            this.GestureModifier = gestureModifier;
            this.GestureKey = gestureKey;
        }
    }

}
